The dot+ brand system

plus

One form, one offset dot. dot+ is a capture product built on a mono foundation — where color signals state, shape signals interactivity, and weight signals hierarchy. This is the single source of truth for the mark, the tokens, and every place they're applied.

Form
Rounded square
Dot
Solid · lower-left
Accent
#E11900
Type
Inter · JetBrains Mono
01

Principles

Five rules govern every decision. When a call is ambiguous, defer to these — they outrank taste.

01

Foundation over decoration

Every visual decision serves a function. No decorative gradients, no glass blur, no shadows for aesthetics.

02

Mono foundation, themeable

A near-black/near-white scale carries the system. Accent color exists only to communicate meaning. Light is a one-token swap.

03

Dense, not cluttered

More information per screen than a typical iOS app. Users are professionals — they want data density, not lifestyle spacing.

04

The mark is the indicator

The disc is the one element that takes color, and only for a reason — red while recording, blue for AI. Everywhere else, two flat tones.

05

Accessibility is non-negotiable

4.5:1 body contrast, 44×44pt hit targets, Dynamic Type and VoiceOver on every component. No exceptions.

03

Construction

Rounded square at a 22.5% corner radius. The disc is 31% of the width, centered in the lower-left at 27.3% / 72.7%. Clear space equals one disc diameter on every side.

ø 31%
y 72.7%
r 22.5%
Sizing — reads down to 16px
96
64
44
32
20
16 · min
04

Color

Two layers: primitive palette values, and semantic tokens that reference them. Components bind only to semantic tokens — swapping the map is what enables Light / Dark.

Primitive · mono scale
mono.0
#FFFFFF
mono.100
#F2F2F5
mono.300
#C8C8D4
mono.500
#6B6B78
mono.600
#2E2E38
mono.700
#222229
mono.800
#18181F
mono.900
#0F0F14
mono.1000
#05050A
mono.50
#FAFAFC
mono.200
#E6E6EB
mono.400
#9494A3
Primitive · accents — meaning only
Positive
accent.positive
#05944F
Warning
accent.warning
#BB7A00
Negative · Rec
accent.negative
#E11900
Info · AI
accent.info
#276EF1
Semantic tokens
Token
Dark → primitive
Light → primitive
surface.primary
mono.900
mono.0
surface.secondary
mono.800
mono.50
content.primary
mono.0
mono.1000
content.secondary
mono.300
mono.600
border.opaque
mono.600
mono.200
Mark tokens are separate. The logo uses pure #000000 / #FFFFFF for OLED punch — never the UI surface tokens. The disc's one accent, #E11900, appears only during capture.
05

Typography

Two families. Inter carries display and UI; JetBrains Mono carries metadata, timestamps and labels. Nothing else.

Aa
Inter
Display & UI · neutral grotesque
RegularMediumSemiBoldBoldBlack
Aa
JetBrains Mono
Metadata · timestamps · labels
RegularMediumSemiBold
Scale
DisplayRecord the roomInter Bold · 32 / 36
HeadlineSection titlesInter Bold · 22 / 28
TitleMeeting titleInter SemiBold · 18 / 24
BodyThe quick capture starts the moment you tap.Inter Regular · 15 / 22
LabelRow labels & buttonsInter Medium · 13 / 18
Caption12:04 · 4 SPEAKERS · TRANSCRIBEDJetBrains Mono · 11 / 14
06

Tokens

A 4pt grid governs spacing. Radius never exceeds 16 — dot+ is functional, not playful.

Spacing · 4pt grid

space.1 · 4
space.2 · 8
space.3 · 12
space.4 · 16
space.5 · 20
space.6 · 24
space.7 · 32
space.8 · 48

Corner radius

radius.xs4pt
radius.sm8pt
radius.md12pt
radius.lg16pt

Elevation

Dark theme shows depth by tonal lift (900 → 800 → 700), never shadow. Light theme uses real shadows: 0 1px 2px cards · 0 4px 12px popovers · 0 12px 32px modals.

07

Iconography

SF-Symbol-style line icons on a 24pt grid, 1.5pt stroke, rounded caps and joins. No emoji, anywhere.

Record
Waveform
Transcript
AI
Play
Pause
Stop
Alert
Done
Pending
Note
Speakers
Summary
Save
Share
Settings
08

UI components

Core primitives. Fills, not outlines. Tinted secondaries. Semantic color only where it means something.

Buttons
Tags
Default Transcribed Queued Recording AI
Input & toggle
Meeting title… Board sync
Status pill · dot+ extension
Recording
09

iOS widgets

dot+ is a capture app, so the brand lives in motion — the Dynamic Island, a notification, a home widget. The disc turns red only while recording, blue only for AI.

Dynamic Island · compact & expanded
12:04
Recording
Board sync
12:04
Pause
Notifications
dot+now
Transcript ready — "Board sync" · 12 min, 4 speakers.
dot+ AI2m
Summary & 3 action items captured. Tap to review.
Home widget · recent captures
dot+RECENT
Board synclive · 12:04
1:1 — Mayatranscript ✓
Standup9m ago
Home widget · quick record
dot+
Record
tap to start
10

Presentation cards

16:9 slide templates. Title on near-black, section dividers on the accent red, content on the mono grid.

plus
Product review · Q3

Capture, transcribed the moment it ends.

dot+ 2026Confidential
02

The recording engine

Sectiondot+
By the numbers
2.1s
to first transcript
98%
word accuracy
40+
languages
0
cloud round-trips
dot+ 202603
plus
Light variant

Same system, inverted for print & keynote.

dot+ 2026Confidential
11

Email signatures

Two-tone, mark plus a hairline divider. No banner images — the signature stays light and renders in every client.

Light
Rodrigo Arvizu
Founder · dot+
rodrigo@dotplus.app
dotplus.app · +1 809 000 0000
Dark
Fiorella Mares
Partnerships · HMS
fiorella@dotplus.app
dotplus.app · +507 000 0000
12

Stationery & print

On paper the system inverts to the Light theme: ink mark on white, red as one restrained accent. Compositions anchor to an edge — never a lone mark centered — and the disc never turns red on static collateral, because red means recording.

plus
DOT-2026-0630
30 JUN 2026
Estrategia de Integración de Accesos
dotplus.appDocumento interno · HMS
Rodrigo Arvizu
Founder
rodrigo@dotplus.app
dotplus.app
Card back · options — the disc stays ink
A · Red period
Wordmark alone; red lives in the typographic dot, not the logo.
dotplus.app
plusCapture, done.
B · Baseline rule
Ink mark; a red hairline anchors the base edge.
plus
C · Red field
Red as the field; mark stays two-tone, anchored low-left.
13

Document output

Every capture becomes a document — a product surface dot+ generates automatically. There are two variants off one data model: a one-page Report (digest) and a long-form Minute (complete record). The generator fills content slots; it never restyles.

Two variants — one schema
Anatomy — long-form minute
plus
A
Masthead
Ink mark + .plus lockup left, document REF and date right, over a 1.5px rule. Never a banner or cover image.
B
Eyebrow + title
Mono eyebrow in accent red with a leading dot (document type), then the H1 — Inter 800, ≤32px, tracking −0.025em.
C
Meta strip
Three fixed columns — Fecha, Participantes, Próxima acción — bounded by hairlines. Mono labels, Inter values.
D
Numbered sections
Zero-padded mono label (red number + white name) over a hairline. Body is Inter 15/1.6 in content.secondary; bold lifts to content.primary.
E
Component blocks
Status cards, lettered option rows, agreement list, action items — the fixed vocabulary for structured content. No block is pre-emphasised.
F
Footer
Mark + document label, confidentiality line, over a 1.5px rule. Closes every page in print.
Construction rules
Light theme, always. Documents are print-first — ink on white paper, never the dark UI surfaces.
Red is structural, not editorial. The accent marks the eyebrow dot and section numbers. It never signals a preferred answer.
Options stay neutral. Alternatives (A/B/C) render identically. A decision belongs in Acuerdos or Plan de acción, stated explicitly.
Semantic color only where it means something. Critical-point cards take severity color; nothing else in the body is tinted.
Every action has an owner. Action items carry an owner tag and an imperative task line — no orphaned to-dos.
A4, cards never split. 14/15mm margins; status cards, option rows and action items set break-inside:avoid.
Critical-point severity → color
Blocking
Non-negotiable requirement or hard constraint.
accent.negative
Dependency
Risk or reliance on a third party / roadmap.
accent.warning
Opportunity
Upside, growth or monetization signal.
accent.positive
Information
Neutral context or a reference note.
accent.info
Content schema — one model, two renderers
Slot
Fills
ref · date
Document reference (DOT-YYYY-MMDD) and capture date.
title
Meeting subject, one line — the H1.
participants[]
Name + org per attendee, from the capture roster.
next_action
The single most important follow-up.
sections[]
{ label, body } — auto-numbered in order (summary, challenges, detail…).
critical_points[]
{ severity, title, body } — severity picks the card color.
options[]
{ letter, title, body } — rendered neutral, no highlight.
agreements[]
Numbered decisions reached in the meeting.
actions[]
{ owner, task } — the action plan.
Same capture, two documents. The Report and the Minute above are the identical Munily × Cap Cana session rendered from one schema — a one-page digest and the full record. Both print to PDF from their header.
14

Digital surfaces

The mark, sized for every avatar, icon and cover slot it lands in.

App icon
Social avatar
Favicon
Capture, done.
dotplus.app
OG cover